package com.sea.base.ext.global

/**
 * 模块交互的[Class.forName]的升级版：如果没有找到则返回一个空实现
 */
inline fun <reified T : Any> newInteractInstance(className: String, defaultCall: () -> T): T {
    try {
        return Class.forName(className).newInstance() as T
    } catch (e: Throwable) {
        e.printStackTrace()
    }
    "类${className.split(".").lastOrNull()}初始化失败，使用空实的现逻辑".toastAndLogDebug()
    return defaultCall.invoke()
}